package com.obaamilos.accesscontrol;

import java.util.Date;

public class Usuario {
	
	private String nome;
	private String login;
	private String token;
	private Date datahora;
    ListaItensAcesso<ItemAcesso> listaacessos;
	
    public Usuario(String pnome, String plogin, String ptoken) {
    	this.nome = pnome;
    	this.login = plogin;
    	this.token = ptoken;
    	this.listaacessos = new ListaItensAcesso<ItemAcesso>();
    	this.setDatahora(new Date());
    }
    
    @Override public String toString() {
    	return "[login:" + this.login + "] [nome:" + this.nome + "]" + System.getProperty("line.separator") + "perfil -> " + this.perfil();
    }

    public String perfil() {
    	return listaacessos.toString();
    }
    
    public void addAcesso(String precurso, String pacesso) {
     	ItemAcesso mItem = new ItemAcesso(precurso, pacesso);
    	this.listaacessos.addLast(mItem);
    }

    public Boolean possuiAcesso(String precurso, String pacesso) {
    	return this.listaacessos.possuiAcesso(precurso, pacesso);
    }
    
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getToken() {
		return token;
	}

	public void setToken(String token) {
		this.token = token;
	}

	public Date getDatahora() {
		return datahora;
	}

	public void setDatahora(Date datahora) {
		this.datahora = datahora;
	}
	
	public long minutosPasssados(Date pdatahora) {
		long diff = pdatahora.getTime() - datahora.getTime();
		//long diffSeconds = diff / 1000 % 60;  
		return diff / (60 * 1000) % 60; // Tempo em minutos		
	}
}
